#ifndef TST_JSON_H
#define TST_JSON_H

/************************************************************
 * 时间：2023/05/09
 * 作者：HONG_KE_LI
 * 功能：nlohmann-json单元测试
 ***********************************************************/


#include <QObject>
#include "nlohmann/json.hpp"

class tst_json: public QObject
{
    Q_OBJECT

private slots:

    // 构建Json对象， 生成键值对, 读写键值对
    void tst_JsonCreate();

    // 通过 显示转换获得json对象的数据 （更建议这种方式）
    void tst_ExplicitRead();

    // string 序列化，反序列化
    void tst_String_serialization();

    // stream 序列化，反序列化
    // 从输入输出流中序列化、反序列化json对象
    // 从文件反序列化到json对象， 从json对象序列化到文本文件
    void tst_Stream_serialization();


    // json与任意类型互相转换
    /*
    被转换的目标 结构体所在的命名空间下，
    定义函数to_json()和from_json()就可以轻松的完成任意类型到
    json 对象的转换，以及 json 转换为任意对象。 */
    void tst_typeConversion();






private:
    // 返回一个Json对象  用以测试
    nlohmann::json one_json_obj();
};

#endif // TST_JSON_H
